1. Field of the Invention
The present invention relates to a cache server and a network system having cache servers. The invention particularly relates to a technique of performing prefetching of linked information (link prefetching) and the like with enhanced effectiveness of a cache server in high probabilities without deteriorating a congostion status of the network.
2. Description of the Related Art
A conventional network system having cache servers will be described with reference to FIG. 36 and FIG. 37.
FIG. 36 is a block diagram showing an example of the configuration of a conventional network system having cache servers. Web servers S1 and S2 are the servers that exist within sub-nets N2 and N3, respectively, and hold various Web (Worldwide Web) contents. Terminals T1, T2 and T3 for accessing the Web servers S1 and S2 exist within sub-nets N1 and N4. Cache servers C1, C2 and C3 are also disposed on the network. Routers R0, R1, R2, R3 and R4 connect the sub-nets N1, N2 and N3 using links L0 to L5 to form the network. The cache servers C1, C2 and C3 hold copies of various contents on the Web server (here, S1 and S2).
When a terminal (assumed at T1 in this case) obtains the content from a Web server (assumed as S1 in this case), a certain cache server (assume as C1 in this case) intermediates this operation. When there has occurred a request for making access to the content information of the Web server S1, first, the cache server C1 checks whether the cache server C1 itself is holding the content information of the Web server S1 or not. When the cacher server C1 is not holding the content, the cache server C1 inquires other cache servers such as the cache servers C2 and C3 about whether these cache servers hold the content or not. The cache server C1 obtains the content information from the cache server that holds the same, or obtains the same from the Web server that has originally held the content (such a web server is called an original Web server) before forwarding the obtained content to the terminal T1. At the same time, the same content may also be held in a storage within the cache server C1. In this case, the cache server C1 passes the content information to the terminal T1.
When the cache server C1 holds the content, the content is passed to the terminal T1. The cache server C1 inquires the original Web server S1 about the last update date and time of the content. When the content held in the cache server C1 is older than that of the original Web server S1, the cache server C1 may obtain the content from the original Web servers S1 again. This operation in hereafter called an update checking operation.
The cache server (C1, C2 or C3) is also inquired from another cache server, not only from a terminal, about whether the cache server hold the content information or not. The operation in this case is similar to that of the intermediation in the access from the terminal to the Web server. In other words, when there has occurred a request for making access to the content information of the Web server, this cache server checks whether the own cache server is holding the content information of the Web server of not. When the cache server is not holding the content, this cache server inquires other cache servers about whether these cache servers hold the content or not. The cache server obtains the content from the cache server that holds the content, or obtains the content information from the original Web server that has originally held the content. Then, the cache server passes the content information to the cache server that has made the original inquiry. In this case, the same content may also be held in a storage at the same time. When the cache server is holding the content, the content is passed to the cache server issuing the original inquiry. In this case, the update checking operation may be carried out.
Each of the cache servers carries out the above operation. It the update checking operation is not carried out, then the cache server may be holding the content information older than that of the Web server (the content information that does not reflect the updating of the content carried out at the Web server), even when the cache server is holding the content information of the Web server for which there has been an access request. In this case, the old contents are sent to the terminal. When the cache server is holding the old content at the time of carrying out the update checking, it takes time for the terminal to obtain the updated content, because the cache server obtains the updated content from the original Web server again.
For the above reason, it is important for each cache server to hold Web content information which has a high possibility of receiving an access request from terminals and is not older than that on the Web server.
In order to meet this requirement, the conventional cache server has carried out: 1) an automatic cache updating operation; 2) a link prefetching operation; and 3) a cache server cooperating operation.
The automatic cache updating operation is the operation of obtaining the latest version of the Web content held by the cache server from the original Web server by making access to this original Web server.
The link prefetching operation is the operation of previously obtaining the content information associated with links described in the Web content that is held by the cache server.
The cache server cooperating operation is the operation of carrying out redistribution, sharing and comparison of freshness of caches held by cache servers, among the cache servers. The cache redistribution is the operation that a cache server that does not have a certain content obtains the content from another cache server that has the content. The cache sharing is the operation that when a cache server that does not have a certain content has received a request for making access to the content from a terminal, this cache server transfers this access request to a cache server that has the content. The cache freshness comparison is the operation that a cache server that has a certain content checks whether another cache server has the latest version of the that reflect the latest updating by the Web server, and obtains the latest version when necessary.
For the cache server cooperating operation, the conventional cache servers have exchanged with each other a list of contents held by respective cache servers and information showing cache validity of contents held by each of the cache servers (called content summary). As the information showing the validity of a cache, and effective period of the cache indicated by the content originating server, and the last updating time and date of the content have been used.
FIG. 37 is a diagram showing an internal structure of the conventional cache server. Each circuit block will be described hereinafter.
A communication interface section 1 provides a transmission/reception interface between a network and each of a cache operating section 3, a congestion information obtaining section 2, a link prefetching control section 4, an automatic cache updating section 5, and a cache server cooperating section 7.
The congestion information obtaining section 2 investigates congestion information on a patch determined based on the content of a routing table to a destination on the network specified by the link prefetching control section 4, the automatic cache updating section 5, and the cache server cooperating section 7, based on test communication to a specified destination through the communication interface section 1. The congestion information obtaining section 2 passes the result of the investigation to the link prefetching control section 4, the automatic cache updating section 5, and the cache server cooperating section 7.
The cache operating section 3 receives a request for making access to the Web content from a terminal via the communication interface section 1, and searches a storage 6 for the content. When the content does not exist, the cache operating section 3 makes access to a corresponding Web server, and obtains the content. The cache operating section 3 stores the obtained content in the storage 6, and at the same time, transmits the content to the request-originating terminal. When the contents exist, the cache operating section 3 transmits the content to the request-originating terminal. In the case of carrying out the update checking operation when the content exist, the cache operating section 3 checks whether the last update date and time of the content held by the Web server. When the last update and time of the held content is older, the cache operating section 3 obtains the content of the Web server, holds the obtained content in the storage 6, and at the same time, passes the content to the terminal.
The link prefetching control section 4 extracts links to content information which are now not stored in the storage 6 but have a possibility of making access thereto from now on, from the links to relevant information described in the Web content stored in the storage 6. For example, the link prefetching control section 4 extracts a first predetermined number of links to content information which are now not stored in the storage 6 from a plurality of links described in the content. The link prefetching control section 4 checks the load statuses of the network on paths to the Web servers that hold the contents indicated by the extracted links, by utilizing the congestion information obtaining section 2. Then, the link prefetching control section 4 decides whether the contents indicated by the extracted links are obtainable, depending on the obtained load statues. When it has been decided that the content are obtainable, the link prefetching control section 4 makes access to the corresponding Web server, and obtains the content. The link prefetching control section 4 stores the obtained content in the storage 6. Preset information may also be used for making this decision.
The automatic cache updating section 5 investigates the intervals of updating of the content on the Web server where the content originally exist, for the Web content held in the storage 6. Then, the automatic cache updating section 5 determines the date and time of updating the cached content. On the determined date and time, the automatic cache updating section 5 investigates the congestion status of the network on the path to the corresponding Web server that holds the content, by utilizing the congestion information obtaining section 2. Then, the automatic cache updating section 5 decides based on the obtained congestion information whether the content is obtainable. When it has been decided that the content are obtainable, the automatic cache updating section 5 makes access to the corresponding Web server, and obtains the content. The obtained content is stored in the storage 6. Preset information may also be used for making this decision.
The storage 6 stores various Web contents and content summaries.
The cache server cooperating section 7 exchanges with one another lists of contents held by the respective cache servers and validity information showing the validity of cache of the content held by each cache server, which are used to carry out redistribution, sharing and comparison of freshness. At the time of exchanging the content list and validity information, the cache server cooperating section 7 investigates the congestion status of the network on the path to an opposite cache server by using the congestion information obtaining section 2. The cache server cooperating section 7 decides whether the information exchange is to be carried out, based on the obtained congestion information. As a result of the information exchange, the cache server cooperating section 7 finds out the content that should be obtained in advance from another cacher server. For the content that have been decided to be obtained in advance, the cache server cooperating section 7 investigates the congestion status of the network on the path to the cache server that holds the target content, by using the congestion information obtaining section 2. The cache server cooperating section 7 decides whether the content is obtainable or not, based on the obtained information. When it has been decided to obtain the content, the cache server cooperating section 7 obtains the content from the corresponding cache server.
Basically, 1) the automatic cache updating operation, 2) the link prefetching operation, and 3) the cache server cooperating operation are performed to predict the Web content that is required by the terminal, and makes access to the Web server prior to the time when the terminal actually requires the content so as to increase the effectiveness of a cache server. When the predicted content are not actually required, or when the content is updated more frequently at the Web server than the automatic cache updating operation, these operations are not effective. Only the resources of the network are wasted. Therefore, in many cases, the traffic generated by these three operations is desired not to interrupt other traffics that are generated based on the actual needs of the Web servers by the terminals.
For this reason, conventionally, in the case of obtaining the Web content or the content summary corresponding to the above operations of (1), (2) and (3) by using the congestion information obtaining section 2, the load of the network path currently set is checked. In the conventional network system, the operations of (1), (2) and (3) is performed only when the network load is low.
Japanese Patent Application Unexamined Publication No. 11-24981 describes a technique of obtaining a relatively low tratlic time zone in the wide-area network by using a wide area network monitoring apparatus, and fetching the content in advance during the obtained time zone.
The conventional techniques shown in FIG. 36 and FIG. 37 have the following disadvantages. Assume the following case. In the network configuration as shown in FIG. 36, the content or the content summary that the cache server C1 on the sub-net N1 is going to obtain for the automatic cache updating operation, the link prefetching operation, and the cache server cooperating operation exist in the Web server S1 on the sub-net N2. The path from the sub-net N1 to the sub-net N2 determined by routing tables (not shown) within the routers R0 to R4 is N1→R0→L0→R1→L1→R2→N2. Among the links L0 to L5, only the load of the link L1 is high.
In this case, as a path from the sub-net N1 to the sub-net N2 having the Web server S1 included therein, there is also another low-load path such as N1→R0→L0→R1→L2→R3→L3→R2→N2, in addition to the above path of N1→R0→L0→R1→L1→R2→N2.
However, according to the conventional cache server, the congestion information obtaining section 2 decides the congestion by flowing a test packet on the path currently set (on the path determined by the contents of the routing table). Therefore, the composition information obtaining section 2 decides that the network is in the high-load status. As a result, the information that the network is under the high load is transmitted to the link prefetching control section 4, the automatic cache updating section 5, and the cache server cooperating section 7. Consequently, there has been a problem that the operations of (1), (2) and (3) are not carried out.
Further, the technique described in Japanese Patent Application Unexamined Publication No. 11-24981 has had the following disadvantage. There is a case where the load of the path used for the prefetching of the content is high even in the time zone in which the wide-area network monitoring apparatus has decided that the wide area network is in relatively low traffic. As a result, the prefetching of the content may further deteriorate the congestion status of the network.